Most modern day computer systems employ a backplane having a plurality of card slots (i.e., edge connectors) for receiving various types of cards, such as memory cards, multi-purpose I/O cards, controller cards, cards associated with peripheral devices, and the like, for communicating with a processor associated with the computer system. The backplane usually includes a bus that has a plurality of address lines for addressing the various cards, as well as a number of data lines for bidirectionally communicating data (or instructions) between the cards and the processor. In the case of memory cards, each card contains a plurality of addressable locations, i.e., each of the separate memory locations, for storing data, and possibly instructions.
In order that the processor may select a card and communicate with it, each card (or card slot in some systems) is frequently assigned an address range so that the processor can select the card by placing an appropriate address on the address lines of the bus. Generally, a number of the address lines are designated as "select" lines, and these lines are used for selecting the actual card, while some or all of the remaining address lines are used for addressing addressable locations on the selected card. For example, while a sixteen bit address bus may address up to 2.sup.16 memory locations, four of the address bits may be designated as "select" address bits for selecting 2.sup.4 memory cards containing the addressable locations. The particular sequence of "select" bits applied on the "select" address lines to which the card will respond is known as its "physical address."
One common method in the prior art for selecting the physical address of a card is to provide a number of DIP (dual in line) switches that are set by the user. Those skilled in the art will appreciate that the setting of these switches may also set the address range of the card. A problem with user configured DIP switches is that the system must be powered down and the card removed to alter the physical address and address range of the card. For example, the DIP switches may be incorrectly configured at the time of an initial installation, and therefore the system must be powered down and the card removed so that the DIP switches can be properly set. Thus, the use of DIP switches to select a physical address and address range of a card can be cumbersome and time consuming. The use of DIP switches is also problematic since the user must make the switch selections, thus introducing the possibility of human error.
Some cards employ fixed, hard-wired addresses, but, as will be appreciated, the address of these cards cannot be easily changed.
Another method known requires the use of dedicated "slot" signal pins on the backplane to set the physical addresses of a card slot. In this methodology, certain pins of each card slot are hardwired to receive a different pattern of dedicated lines from the backplane. Consider an exemplary system having a six bit address bus (A0-A5), with two of the address lines, e.g., A4, A5, employed to select one of the cards in the backplane. In such system, lines A4 and A5 of each card slot would commonly be coupled to dedicated signal lines (i.e., not a part of the address bus), such as, e.g., GND and VDD, with each card slot receiving a unique combination of GND and VDD at the A4 and A5 lines of the card slot. Each card determines the slot it's in by examining the values on A4 and A5. A problem with this type of system is that the physical address of each card slot is fixed and cannot be easily changed. Moreover, additional signal lines must be provided on the already crowded backplane.
It is therefore desirable to provide an apparatus and method that allows complete flexibility in address range assignment without requiring signal overhead or user intervention. The present invention achieves these goals.